Coursera week7
SVM(サポートベクターマシーン)
SVMはマージン最大化して分類するアルゴリズムです。次の図はイメージです。
SVM概要図
https://gyazo.com/d9a81fc8b15ffee64f7bf3a262347f18
SVMはロジスティック回帰によく似ているため、比較しながら説明していくことにします。早速ですが、ロジスティック回帰の仮説関数・目的関数は以下のようでした。
ロジスティック回帰の仮説関数
$ h_\theta(x) = g(\theta^Tx) ※$ g(z) はシグモイド関数
ロジスティック回帰の目的関数
https://gyazo.com/9c956f9b802ea176b44d7eef2dc96009
この目的関数は、$ y = 1 のとき、$ \theta^Tx > 0 、$ y = 0 のとき、$ \theta^Tx < 0 となると最小化します。
SVMはこの目的関数をより大雑把にします。次の図は、赤線がSVM、青線がロジスティック回帰の関数を示しています。
SVMとロジスティック回帰
https://gyazo.com/46c0e8f7d1d69d8979f78590d7e2a249
この図から、以下のことが言えます。
y = 1のとき、$ \theta^Tx > 1 なら、$ cost_{(y=1)}(z) = 0
y = 0のとき、$ \theta^Tx < -1 なら、$ cost_{(y=0)}(z) = 0
このことから、最小となる目的関数は、正規化パラメーター$ \lambda を含めると以下のように書けます。
https://gyazo.com/3ea4b4ad71f5b9fb72551690907eaf4b
ちょっと変形します。$ C=1/\lambda とすると、これが最終的なSVMの目的関数になります。
Cost Function(目的関数)
https://gyazo.com/b91a1db19bd83c410ca2e429263cb9cd
この関数は、y = 1のとき$ \theta^Tx > 1 、y = 0のとき$ \theta^Tx < -1 を満たす$ \theta であれば、第1の項が0となりますので、第2の項のみを考えればいいことになります。
また、$ C が大きいほどオーバーフィットします。
https://gyazo.com/fc21cc293b4be86dda4c40353a6cb131
https://gyazo.com/177dd3afbbf1c0f58e95c8e021ac1308
Kernel(カーネル)
カーネルは、元のデータ$ x を新しい説明変数$ f に変換します。今回は、ガウシアンカーネル(Gaussian Kernel)を使い、手持ちのデータ$ x と、$ x と同次元のある点$ l^{(1)} (ランドマーク)の類似性(similarity)を定量します。
これまでに紹介したSVMは、線形分離可能なアルゴリズムでしたが、カーネルは非線形分離を可能にします。
元データとランドマークの類似性を求める式
https://gyazo.com/e53c7531a93cfe7ea476e1df1dbd190e
新しい説明変数$ f1 は、$ x と$ l^{(1)} が近ければ1、遠ければ0に近い値を出してくれます。
$ \theta_0 + \theta_1f_1 + \theta_2f_2 + \theta_3f_3... となり、重要な重みをつけてくれるので、非線形でも対応できます。
パラメーター$ C の調整
SVMの正規化パラメーター$ C は$ \lambda の逆数です。なので、$ C が小さい($ \lambda が大きい)とアンダーフィット(High Bias)しやすくなります。逆に$ C が大きい($ \lambda が小さい)とオーバーフィット(High Variance)しやすくなります。
パラメーター$ \sigma の調整
ガウシアンカーネルを使う場合は、ガウシアン(正規分布)の広さを表すパラメーター$ \sigma を決める必要があります。
$ \sigma が大きいと正規分布の広がりが大きくなり、類似性が検出されやすく、アンダーフィット(High Bias)しやすくなります。逆に、$ \sigma が小さいと正規分布の広がりが小さくなり、類似性が検出されにくくなるため、オーバーフィット(High Variance)しやすくなります。